/**
 * @class Controller
 * @author zzh
 * @date 2021-06-07
 * @description 学习其他大佬写法，我扩展了helper方法，在其中添加了渲染方法。
 *    然而，说实话，使用helper的方式确实比较麻烦（ctx.helper.renderSuccess(ctx, 'xxx')）
 *    所以，学习手册中的另一种方法，直接扩展Controller类。
 */
'use strict';

const { Controller } = require('egg');

class BaseController extends Controller {
  get  user() {
    return this.ctx.state.user;
  }

  renderSuccess(data, message, status) {
    this.ctx.body = {
      status: status || 200,
      data: data || {},
      message: message || ''
    }
    this.ctx.status = 200;
  }

  renderFail(data, message, status) {
    this.ctx.body =  {
      status: status || 500,
      data: data || {},
      message: message || '',
    }
    this.ctx.status = 500;
  }

  renderNoExit( message, status ) {
    this.ctx.body = {
      status:status || 201, // 暂时设置201为空
      message: `${message}不存在`
    }
    this.ctx.status = 200;
  }
}

module.exports = BaseController;